import { IPSDataEntity } from '../dataentity/ipsdata-entity';
import { IPSDEField } from '../dataentity/defield/ipsdefield';
import { IPSDEDataSet } from '../dataentity/ds/ipsdedata-set';
import { IPSWFRole } from './ipswfrole';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSWFDEDataSetRole
 */
export interface IPSWFDEDataSetRole extends IPSWFRole {
  /**
   * 数据源数据集合
   *
   * @type {IPSDEDataSet}
   */
  getPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 数据源数据集合
   *
   * @type {IPSDEDataSet}
   */
  get psDEDataSet(): IPSDEDataSet | null;

  /**
   * 数据源数据集合（必须存在）
   *
   * @type {IPSDEDataSet}
   */
  getPSDEDataSetMust(): IPSDEDataSet;

  /**
   * 数据源实体对象
   *
   * @type {IPSDataEntity}
   */
  getPSDataEntity(): IPSDataEntity | null;

  /**
   * 数据源实体对象
   *
   * @type {IPSDataEntity}
   */
  get psDataEntity(): IPSDataEntity | null;

  /**
   * 数据源实体对象（必须存在）
   *
   * @type {IPSDataEntity}
   */
  getPSDataEntityMust(): IPSDataEntity;

  /**
   * 流程用户标识存储属性
   *
   * @type {IPSDEField}
   */
  getWFUserIdPSDEF(): IPSDEField | null;

  /**
   * 流程用户标识存储属性
   *
   * @type {IPSDEField}
   */
  get wFUserIdPSDEF(): IPSDEField | null;

  /**
   * 流程用户标识存储属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getWFUserIdPSDEFMust(): IPSDEField;

  /**
   * 流程用户名称存储属性
   *
   * @type {IPSDEField}
   */
  getWFUserNamePSDEF(): IPSDEField | null;

  /**
   * 流程用户名称存储属性
   *
   * @type {IPSDEField}
   */
  get wFUserNamePSDEF(): IPSDEField | null;

  /**
   * 流程用户名称存储属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getWFUserNamePSDEFMust(): IPSDEField;
}
